package com.starry.module.system.core.code.mapper;

import com.starry.core.common.domain.vo.PageVo;
import com.starry.db.core.mapper.BaseMapperX;
import com.starry.db.core.query.LambdaQueryWrapperX;
import com.starry.module.system.api.code.domain.qo.CodeRuleConfigPageQo;
import com.starry.module.system.core.code.entity.CodeRuleConfig;
import org.apache.ibatis.annotations.Mapper;

/**
 * 编码规则配置-数据库服务层
 * @author xiaoke
 */
@Mapper
public interface CodeRuleConfigMapper extends BaseMapperX<CodeRuleConfig> {

    /**
     * 分页查询
     *
     * @param pageQo 分页参数
     * @return PageVo<CodeRuleConfig>
     */
    default PageVo<CodeRuleConfig> selectPage(CodeRuleConfigPageQo pageQo) {
        return selectPage(pageQo, new LambdaQueryWrapperX<CodeRuleConfig>()
                .eqIfPresent(CodeRuleConfig::getSeqType, pageQo.getSeqType())
                .likeIfPresent(CodeRuleConfig::getRuleKey, pageQo.getRuleKey())
                .likeIfPresent(CodeRuleConfig::getRuleName, pageQo.getRuleName())
        );
    }
}

